# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Pokemon Pinball Ruby & Sapphire Template

game: Pokemon Pinball Ruby & Sapphire
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    Pokemon Pinball Ruby & Sapphire: 0.3.0 # Version of the world required for this yaml to work as expected.

Pokemon Pinball Ruby & Sapphire:
  ################
  # Game Options #
  ################
  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  goal:
    # What is considered the goal for Pokemon Pinball:
    # Including multiple options will require all to have been met
    # Pokédex: a required number of Pokémon are registered within the Pokédex
    # Score: a certain target score is reached on either the Ruby or Sapphire board (must be registered to the high scores)
    # Targets: certain specific target Pokémon have been captured
    # Medals: receiving a certain number of Pokédex Medals from the multiworld
    ['Pokedex']

  difficulty:
    # Whether logic should apply additional restrictions on locations
    # Normal: All locations other than catching have additional requirements
    # Hard: Simple board tasks such as hatching and evolutions have no additional requirements
    # Expert: Longer board tasks such as 25+ multiplier bumper hits and catching Groudon/Kyogre have no additional requirements
    # Master: No locations have additional requirements other than what is strictly required
    normal: 50
    hard: 0
    expert: 0
    master: 0

  starting_board:
    # The first unlocked board
    ruby: 0
    sapphire: 0
    random: 50

  single_board:
    # If enabled, only items/locations associated with your starting board will be created.
    'false': 50
    'true': 0

  pokedex_requirement:
    # On Pokédex goal, the amount of Pokémon registered required to goal.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 205
    125: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-205: 0 # random value between 1 and 205

  score_requirement:
    # On Score goal, the required score for goal.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100000000000
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100000000000: 0 # random value between 0 and 100000000000

  pokemon_targets:
    # On Targets goal, what specific Pokémon are required for goal.
    ['Rayquaza', 'Groudon', 'Jirachi', 'Kyogre']

  total_medals:
    # On Medals goal, maximum number of medals to include in the pool of items.
    # The exact number may be less depending on settings.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 255
    75: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-255: 0 # random value between 1 and 255

  medal_requirement:
    # Percentage of Pokédex Medals required to goal.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    66: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  goal_trigger:
    # Defines what triggers goal once all targets have been reached.
    # Ball: goal is triggered at the end of the current ball.
    # Groudon/Kyogre: goal is triggered when Groudon or Kyogre are defeated while all goal targets have been met.
    # Rayquaza: goal is triggered when Rayquaza is defeated while all goal targets have been met.
    ball: 50
    groudon_kyogre: 0
    rayquaza: 0

  bonus_multiplier_checks:
    # Number of bonus multiplier hits to include as checks per-board
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99

  ball_upgrade_checks:
    # Number of ball upgrades to include as checks. This includes both the ball upgrades
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99

  shop_tracks:
    # Number of available shop tracks available per board.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 5
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-5: 0 # random value between 0 and 5

  shop_track_length:
    # Number of available locations per shop track.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 15
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-15: 0 # random value between 1 and 15

  shop_prices:
    # Low: Shop prices linearly increase by 5.
    # Medium: Shop prices follow an exponential curve of 1.65.
    # High: Shop prices linearly increase by 10.
    low: 50
    medium: 0
    high: 0

  roulette_prizes:
    # Number of checks locked behind roulette prizes per board.
    # Note that Zigzagoon is not considered in logic for these locations.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 40
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-40: 0 # random value between 0 and 40

  evo_mode:
    # Evo Mode Behavior
    # Arrows: Each arrow of Evo mode is split up and added to the pool.
    # Full: All arrows are condensed into a single item and added to the pool.
    # Start With: Evo Mode is placed within your starting inventory.
    arrows: 50
    full: 0
    start_with: 0

  collect_pokedex:
    # Whether server collects should apply to Pokédex locations. This can cause goaling if all goals are tied to
    # Pokédex locations.
    'false': 50
    'true': 0

  ringlink:
    # Links coin gain/loss with other players.
    'false': 50
    'true': 0

  music_shuffle:
    # Shuffles music, including unused tracks.
    # Off: Disables music shuffle
    # Shuffle: Each track replaces exactly one other track
    # Chaos: Each track rolls a random song to replace it, allowing duplicates
    'off': 50
    shuffle: 0
    chaos: 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
